﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using ARchGL.Platform.Dtos;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace ARchGL.Platform.Juneng
{
    /// <summary>
    /// 检查服务 接口
    /// </summary>
    public interface ISecurityChecksAppService : IApplicationService
    {
        #region 巡检

        Task<Guid> CreateCheck(SecurityChecksInput input);

        Task BatchRemoveChecks(List<Guid> input);

        Task TurnOverCheck(TurnOverCheckInput input);

        Task<PagedResultDto<SecurityCheckDto>> QueryChecksPagedList(QueryChecksPagedListInput input);

        Task<PagedResultDto<SecurityCheckDto>> QueryMyChecksPagedList(QueryChecksPagedListInput input);

        Task<Guid> CreateCheckAndFeedbacks(SecurityCheckAndFeedbacksInput input);

        #endregion

        #region 自检

        Task<Guid> CreateSelfCheck(SelfChecksInput input);
               
        Task CompleteSelfCheck(Guid input);

        Task<SelfChecksDto> QuerySelfCheckDetailById(Guid input);

        Task<PagedResultDto<SelfChecksDto>> QuerySelfChecksPagedList(QuerySelfChecksPagedList input);

        Task<PagedResultDto<SelfChecksDto>> QueryMySelfChecksPagedList(QuerySelfChecksPagedList input);

        #endregion

        #region 巡检项/巡检性质

        Task<Guid> CreateOrModifyCheckItem(SecurityCheckItemsInput input);

        Task BatchRemoveCheckItem(List<Guid> input);

        Task<List<SecurityCheckItemsDto>> QueryCheckItems(QueryCheckItemsInput input);

        #endregion
    }
}
